package com.zhb.cloud.plant.base.service;

import java.util.List;

/**
 * @ClassName: BaseService
 * @Description: 服务基类
 * @author: zhb zhb1316783262@163.com
 * @date: 2017年11月17日 下午3:12:28
 *
 * @param <T>
 */
public interface BaseService<T> {
	/**
	 * @Description: 根据主键ID查询
	 * @author: zhb zhb1316783262@163.com
	 * @date: 2017年11月17日 下午3:12:22
	 * @param id
	 * @return
	 */
	T findById(String id);

	/**
	 * @Description:添加操作
	 * @author: zhb zhb1316783262@163.com
	 * @date: 2017年11月17日 下午3:11:55
	 * @param model
	 * @return
	 */
	int saveModel(T model);

	/**
	 * @Description:更新操作
	 * @author: zhb zhb1316783262@163.com
	 * @date: 2017年11月17日 下午3:11:44
	 * @param model
	 */
	int updateModel(T model);

	/**
	 * @Description: 删除根据Id
	 * @author: zhb zhb1316783262@163.com
	 * @date: 2017年11月17日 下午3:11:33
	 * @param id
	 */
	int deleteModel(String id);

	/**
	 * @Description: 总的记录数
	 * @author: zhb zhb1316783262@163.com
	 * @date: 2017年11月17日 下午3:11:17
	 * @param model
	 * @param objects
	 * @return
	 */
	long totalAmount(T model, Object... objects);

	/**
	 * @Description: 批量插入
	 * @author: zhb zhb1316783262@163.com
	 * @date: 2017年11月17日 下午3:09:23
	 * @param list
	 */
	int batchInsert(List<T> list);
}
